package com.test.sort2;

public class QuickSort {

	public static void main(String[] args) {
		int arr[] = new int[10];
		for (int i = 0; i < 10; i++) {
			arr[i] = (int) Math.floor(Math.random() * 100);
		}
		for (int i = 0; i < 10; i++) {
			System.out.print(arr[i] + ",");
		}
		System.out.println();
		sort(arr, 0);
		for (int i = 0; i < 10; i++) {
			System.out.print(arr[i] + ",");
		}

	}

	/**
	 * 简单选择排序算法实现。（不稳定排序）
	 * 
	 * @param arr
	 * @param sortedEnd
	 *            已排好序的结尾
	 */
	public static void sort(int[] arr, int sortedEnd) {
		// 设置结束标识
		if (sortedEnd >= arr.length - 1)
			return;
		int min = arr[sortedEnd + 1], index = sortedEnd + 1;
		for (int i = sortedEnd + 2; i < arr.length; i++) {
			if (arr[i] < min) {
				min = arr[i];
				index = i;
			}
		}

		// 向后换位
		for (int i = index; i > sortedEnd + 1; i--) {
			int temp = arr[i];
			arr[i] = arr[i - 1];
			arr[i - 1] = temp;
		}
		arr[sortedEnd + 1] = min;

		sortedEnd++;
		sort(arr, sortedEnd);

	}
}
